package fulbitofacil.negocio;

import java.sql.Date;
import java.util.Collection;

import fulbitofacil.dao.AlquilerNegocioDAO;
import fulbitofacil.exception.DAOExcepcion;
import fulbitofacil.modelo.Alquiler;
import fulbitofacil.modelo.CanchaFul;
import fulbitofacil.modelo.Cliente;
import fulbitofacil.modelo.HorarioAtencion;
import fulbitofacil.modelo.Local;

public class AlquilerNegocio {

	public Collection<CanchaFul> listarCanchasDisponibles(String fechaAlquiler,
			int horaInicio, int horaFinal) throws DAOExcepcion {
		Collection<CanchaFul> canchasDisponibles = null;
		AlquilerNegocioDAO A = new AlquilerNegocioDAO();
		canchasDisponibles = A.buscarCanchas(fechaAlquiler, horaInicio,
				horaFinal);

		return canchasDisponibles;
	}

	public String insertarAlquiler(Date fechaAlquiler, Date fecha, 
			CanchaFul idCanchaFul, Cliente idPersona, HorarioAtencion idHorario)
			throws DAOExcepcion {

		String Mensaje = "";
		Alquiler p = new Alquiler();
		p.setFechaAlquiler(fechaAlquiler);
		p.setFecha(fecha);
		//p.setHora(hora);
		p.setMyCanchaFul(idCanchaFul);
		p.setMyCliente(idPersona);
		p.setIdHora(idHorario);
		if (AlquilerExiste(idHorario)) {
			Mensaje = "La cancha de fulbito ya fue reservada";
		} else {
			AlquilerNegocioDAO dao = new AlquilerNegocioDAO();
			try {
				dao.insertar(p);
				Mensaje = "Cancha reservada exitosamente";
			} catch (DAOExcepcion e) {
				throw e;
			}
		}
		return Mensaje;
	}

	public Boolean AlquilerExiste(HorarioAtencion hora) throws DAOExcepcion {
		Alquiler myAlquiler = new Alquiler();
		// HorarioAtencion horario = new HorarioAtencion();
		// horario.setIdHoraAtencion(hora);
		myAlquiler.setIdHora(hora);

		AlquilerNegocioDAO dao = new AlquilerNegocioDAO();
		if (dao.ExisteAlquiler(myAlquiler) > 0)
			return true;
		else
			return false;
	}
	
	public Collection<Alquiler> listarCanchasAlquiladasLocal(Date fecha1,Date fecha2,Local lo) throws DAOExcepcion {
		Collection<Alquiler> listaAlquileres = null;
		AlquilerNegocioDAO A = new AlquilerNegocioDAO();
		listaAlquileres = A.listarCanchasAlquiladasLocal(fecha1, fecha2, lo);

		return listaAlquileres;
	}


}
